﻿using System;
namespace Producers.Rr.Xtee.Riik.Ee.Producer.Rr {
    
    
    public partial class RR84Response : global::Producers.Rr.Xtee.Riik.Ee.Producer.Rr.IRR84Response {
        
        private string @__xTeeVeaTeade;
        
        private string @__isikuEesnimi;
        
        private string @__isikuPerenimi;
        
        private string @__isikuSugu;
        
        private string @__isikuSynniaeg;
        
        private string @__isikuStaatus;
        
        private string @__isikuElukoht;
        
        private decimal @__veakood;
        
        private string @__veatekst;
        
        private System.Collections.Generic.List<RR84Response.ISuheType> @__suhe = new System.Collections.Generic.List<RR84Response.ISuheType>();
        
        public RR84Response() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public RR84Response(string @xTeeVeaTeade, string @isikuEesnimi, string @isikuPerenimi, string @isikuSugu, string @isikuSynniaeg, string @isikuStaatus, string @isikuElukoht, decimal @veakood, string @veatekst, System.Collections.Generic.List<RR84Response.ISuheType> @suhe) {
            this.@__xTeeVeaTeade = @xTeeVeaTeade;
            this.@__isikuEesnimi = @isikuEesnimi;
            this.@__isikuPerenimi = @isikuPerenimi;
            this.@__isikuSugu = @isikuSugu;
            this.@__isikuSynniaeg = @isikuSynniaeg;
            this.@__isikuStaatus = @isikuStaatus;
            this.@__isikuElukoht = @isikuElukoht;
            this.@__veakood = @veakood;
            this.@__veatekst = @veatekst;
            this.@__suhe = @suhe;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected RR84Response(IRR84Response @rR84Response) {
            this.@__xTeeVeaTeade = @rR84Response.XTeeVeaTeade;
            this.@__isikuEesnimi = @rR84Response.IsikuEesnimi;
            this.@__isikuPerenimi = @rR84Response.IsikuPerenimi;
            this.@__isikuSugu = @rR84Response.IsikuSugu;
            this.@__isikuSynniaeg = @rR84Response.IsikuSynniaeg;
            this.@__isikuStaatus = @rR84Response.IsikuStaatus;
            this.@__isikuElukoht = @rR84Response.IsikuElukoht;
            this.@__veakood = @rR84Response.Veakood;
            this.@__veatekst = @rR84Response.Veatekst;
            this.@__suhe = @rR84Response.Suhe;
        }
        
        public virtual string XTeeVeaTeade {
            get {
                return this.@__xTeeVeaTeade;
            }
            set {
                this.@__xTeeVeaTeade = value;
            }
        }
        
        public virtual string IsikuEesnimi {
            get {
                return this.@__isikuEesnimi;
            }
            set {
                this.@__isikuEesnimi = value;
            }
        }
        
        public virtual string IsikuPerenimi {
            get {
                return this.@__isikuPerenimi;
            }
            set {
                this.@__isikuPerenimi = value;
            }
        }
        
        public virtual string IsikuSugu {
            get {
                return this.@__isikuSugu;
            }
            set {
                this.@__isikuSugu = value;
            }
        }
        
        public virtual string IsikuSynniaeg {
            get {
                return this.@__isikuSynniaeg;
            }
            set {
                this.@__isikuSynniaeg = value;
            }
        }
        
        public virtual string IsikuStaatus {
            get {
                return this.@__isikuStaatus;
            }
            set {
                this.@__isikuStaatus = value;
            }
        }
        
        public virtual string IsikuElukoht {
            get {
                return this.@__isikuElukoht;
            }
            set {
                this.@__isikuElukoht = value;
            }
        }
        
        public virtual decimal Veakood {
            get {
                return this.@__veakood;
            }
            set {
                this.@__veakood = value;
            }
        }
        
        public virtual string Veatekst {
            get {
                return this.@__veatekst;
            }
            set {
                this.@__veatekst = value;
            }
        }
        
        public virtual System.Collections.Generic.List<RR84Response.ISuheType> Suhe {
            get {
                return this.@__suhe;
            }
            set {
                this.@__suhe = value;
            }
        }
        
        public partial class SuheType : ISuheType {
            
            private string @__suheSuhtetyyp;
            
            private string @__suhesIsikukood;
            
            private string @__suhesPerenimi;
            
            private string @__suhesEesnimi;
            
            private string @__suhesIsikuElukoht;
            
            private string @__suhesIsikuStaatus;
            
            private string @__suheSuhStaatus;
            
            public SuheType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public SuheType(string @suheSuhtetyyp, string @suhesIsikukood, string @suhesPerenimi, string @suhesEesnimi, string @suhesIsikuElukoht, string @suhesIsikuStaatus, string @suheSuhStaatus) {
                this.@__suheSuhtetyyp = @suheSuhtetyyp;
                this.@__suhesIsikukood = @suhesIsikukood;
                this.@__suhesPerenimi = @suhesPerenimi;
                this.@__suhesEesnimi = @suhesEesnimi;
                this.@__suhesIsikuElukoht = @suhesIsikuElukoht;
                this.@__suhesIsikuStaatus = @suhesIsikuStaatus;
                this.@__suheSuhStaatus = @suheSuhStaatus;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected SuheType(ISuheType @suheType) {
                this.@__suheSuhtetyyp = @suheType.SuheSuhtetyyp;
                this.@__suhesIsikukood = @suheType.SuhesIsikukood;
                this.@__suhesPerenimi = @suheType.SuhesPerenimi;
                this.@__suhesEesnimi = @suheType.SuhesEesnimi;
                this.@__suhesIsikuElukoht = @suheType.SuhesIsikuElukoht;
                this.@__suhesIsikuStaatus = @suheType.SuhesIsikuStaatus;
                this.@__suheSuhStaatus = @suheType.SuheSuhStaatus;
            }
            
            public virtual string SuheSuhtetyyp {
                get {
                    return this.@__suheSuhtetyyp;
                }
                set {
                    this.@__suheSuhtetyyp = value;
                }
            }
            
            public virtual string SuhesIsikukood {
                get {
                    return this.@__suhesIsikukood;
                }
                set {
                    this.@__suhesIsikukood = value;
                }
            }
            
            public virtual string SuhesPerenimi {
                get {
                    return this.@__suhesPerenimi;
                }
                set {
                    this.@__suhesPerenimi = value;
                }
            }
            
            public virtual string SuhesEesnimi {
                get {
                    return this.@__suhesEesnimi;
                }
                set {
                    this.@__suhesEesnimi = value;
                }
            }
            
            public virtual string SuhesIsikuElukoht {
                get {
                    return this.@__suhesIsikuElukoht;
                }
                set {
                    this.@__suhesIsikuElukoht = value;
                }
            }
            
            public virtual string SuhesIsikuStaatus {
                get {
                    return this.@__suhesIsikuStaatus;
                }
                set {
                    this.@__suhesIsikuStaatus = value;
                }
            }
            
            public virtual string SuheSuhStaatus {
                get {
                    return this.@__suheSuhStaatus;
                }
                set {
                    this.@__suheSuhStaatus = value;
                }
            }
        }
        
        public interface ISuheType {
            
            string SuheSuhtetyyp {
                get;
                set;
            }
            
            string SuhesIsikukood {
                get;
                set;
            }
            
            string SuhesPerenimi {
                get;
                set;
            }
            
            string SuhesEesnimi {
                get;
                set;
            }
            
            string SuhesIsikuElukoht {
                get;
                set;
            }
            
            string SuhesIsikuStaatus {
                get;
                set;
            }
            
            string SuheSuhStaatus {
                get;
                set;
            }
        }
    }
}
